blob: ac034b5e8d7c3eec422de9431e2a8200c3519d08 [file] [log] [blame]
David Pursehouse58b58de2013-05-20 19:11:58 +09001Release notes for Gerrit 2.8
2============================
3
4
5Gerrit 2.8 is now available:
6
David Pursehouse2e99e0f2013-10-17 10:05:39 +09007link:https://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc0.war[
8https://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc0.war]
David Pursehouse58b58de2013-05-20 19:11:58 +09009
10
11Schema Change
12-------------
13
14
David Pursehouse3a2cc702013-08-15 11:06:46 +090015*WARNING:* This release contains schema changes. To upgrade:
16----
17 java -jar gerrit.war init -d site_path
18----
19
20*WARNING:* Upgrading to 2.8.x requires the server be first upgraded to 2.1.7 (or
21a later 2.1.x version), and then to 2.8.x. If you are upgrading from 2.2.x.x or
22later, you may ignore this warning and upgrade directly to 2.8.x.
David Pursehouse58b58de2013-05-20 19:11:58 +090023
David Pursehouse6e2dcc92013-09-18 09:17:33 +090024*WARNING:* The replication plugin now automatically creates missing repositories
25on the destination if during the replication of a ref the target repository is
26found to be missing. This is a change in behavior of the replication plugin. To go
27back to the old behavior, set the parameter `remote.NAME.createMissingRepositories`
28in the `replication.config` file to `false`.
29
David Pursehouse58b58de2013-05-20 19:11:58 +090030
31Release Highlights
32------------------
33
34
David Pursehouse0c62df92013-10-17 14:11:48 +090035* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/intro-change-screen.html[
David Pursehoused0c8e372013-10-10 10:14:18 +090036New change screen] with completely redesigned UI and fully using the REST API.
David Pursehouse67c07102013-09-24 09:55:23 +090037
David Pursehouse0c62df92013-10-17 14:11:48 +090038* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#index[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090039Secondary indexing with Lucene and Solr].
40
David Pursehouse0c62df92013-10-17 14:11:48 +090041* Lots of new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[
David Pursehouse58b58de2013-05-20 19:11:58 +090042REST API endpoints].
43
David Pursehouse6e2dcc92013-09-18 09:17:33 +090044* New
David Pursehouse0c62df92013-10-17 14:11:48 +090045link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090046UI extension] and
David Pursehouse0c62df92013-10-17 14:11:48 +090047link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/js-api.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090048JavaScript API] for plugins.
David Pursehouse73907be2013-08-08 15:18:55 +090049
David Pursehouse6e2dcc92013-09-18 09:17:33 +090050* New build system using Facebook's link:http://facebook.github.io/buck/[Buck].
David Pursehouse58b58de2013-05-20 19:11:58 +090051
David Pursehouse2e99e0f2013-10-17 10:05:39 +090052* New core plugin: Download Commands.
53
David Pursehouse58b58de2013-05-20 19:11:58 +090054
55New Features
56------------
57
David Pursehouse6e2dcc92013-09-18 09:17:33 +090058Build
59~~~~~
60
61* Gerrit is now built with
David Pursehouse0c62df92013-10-17 14:11:48 +090062link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-buck.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090063Buck].
64
65* Documentation is now built with Buck and link:http://asciidoctor.org[Asciidoctor].
66
David Pursehouse58b58de2013-05-20 19:11:58 +090067
David Pursehousee21f4e12013-10-24 13:34:00 +090068Indexing and Search
69~~~~~~~~~~~~~~~~~~~
70
71Gerrit can be configured to use a
72link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#index[
73secondary index] with Lucene or Solr.
74
75Existing search operations use the secondary index, when enabled, to increase
76performance and reduce resource usage.
77
78The following additional search operations are possible when secondary indexing
79is enabled:
80
81* New
82link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#comment[
83`comment` search operator].
84
85* The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#file[
86`file` operator] can be used to find changes on the specified file.
87
88* Regular expressions are allowed in `file` searches.
89
90
David Pursehouse4143f952013-07-05 13:57:53 +090091Configuration
92~~~~~~~~~~~~~
93
94* Project owners can define `receive.maxObjectSizeLimit` in the
David Pursehouse0c62df92013-10-17 14:11:48 +090095link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#receive.maxObjectSizeLimit[
David Pursehouse4143f952013-07-05 13:57:53 +090096project configuration] to further reduce the global setting.
97
David Pursehouse2e3383f2013-07-08 10:50:26 +090098* Site administrators can define a
David Pursehouse0c62df92013-10-17 14:11:48 +090099link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-mail.html#_footer_vm[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900100footer template] that will be appended to the end of all outgoing emails after
101the 'ChangeFooter' and 'CommentFooter'.
102
David Pursehouse87c69a02013-07-16 14:40:24 +0900103* New `topic-changed` hook and stream event is fired when a change's topic is
104edited from the Web UI or via a REST API.
105
David Pursehouse73907be2013-08-08 15:18:55 +0900106* New options `--list-plugins` and `--install-plugins` on the
David Pursehouse0c62df92013-10-17 14:11:48 +0900107link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/pgm-init.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900108site initialization command].
109
110* New `auth.httpDisplaynameHeader` and `auth.httpEmailHeader` in the
Edwin Kempin0b7158a2013-10-17 09:05:00 +0200111link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_auth_a_section_auth[
David Pursehouse73907be2013-08-08 15:18:55 +0900112authentication configuration].
113+
114When using HTTP-based authentication, the SSO can be delegated to check not only
115the user credentials but also to fetch the full user-profile.
116+
117With the config properties `auth.httpDisplaynameHeader` and `auth.httpEmailHeader`
118it is possible to configure the name of the headers used for propagating this extra
119information and enforce them on the user profile during login and beyond.
120
Edwin Kempin0b7158a2013-10-17 09:05:00 +0200121* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[
David Pursehoused5c50f12013-08-21 11:36:09 +0900122Customizable registration page for HTTP authentication].
123
Edwin Kempin0b7158a2013-10-17 09:05:00 +0200124* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[
David Pursehouse73907be2013-08-08 15:18:55 +0900125Configurable external `robots.txt` file].
David Pursehouse87c69a02013-07-16 14:40:24 +0900126
David Pursehouse3a2cc702013-08-15 11:06:46 +0900127* Support for
David Pursehouse0c62df92013-10-17 14:11:48 +0900128link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/database-setup.html#createdb_oracle[
David Pursehouse3a2cc702013-08-15 11:06:46 +0900129Oracle database].
130
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900131* New bash completion script for autocompletion of parameters to the gerrit.sh wrapper.
132
133* The site can be
David Pursehouse0c62df92013-10-17 14:11:48 +0900134link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-auto-site-initialization.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900135auto-initialized on server startup].
136
David Pursehouse2e8b5822013-10-17 15:54:24 +0900137* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#httpd.filterClass[
David Pursehouse67c07102013-09-24 09:55:23 +0900138Configurable filtering of HTTP traffic through Gerrit's HTTP protocol].
139
David Pursehoused0c8e372013-10-10 10:14:18 +0900140* Labels can be
David Pursehouse2e8b5822013-10-17 15:54:24 +0900141link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresIfNoCodeChange[
David Pursehoused0c8e372013-10-10 10:14:18 +0900142configured to copy scores forward to new patch sets if there is no code change].
143
144* Labels can be
David Pursehouse2e8b5822013-10-17 15:54:24 +0900145link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresOnTrivialRebase[
David Pursehoused0c8e372013-10-10 10:14:18 +0900146configured to copy scores forward to new patch sets for trivial rebases].
147
David Pursehouse58b58de2013-05-20 19:11:58 +0900148Web UI
149~~~~~~
150
151
152Global
153^^^^^^
154
155* The change status is shown in a separate column on dashboards and search results.
156
David Pursehouse58b58de2013-05-20 19:11:58 +0900157Change Screens
158^^^^^^^^^^^^^^
159
160
David Pursehoused0c8e372013-10-10 10:14:18 +0900161* New change screen with completely redesigned UI, using the REST API.
David Pursehouse67c07102013-09-24 09:55:23 +0900162+
163Site administrators can
David Pursehouse0c62df92013-10-17 14:11:48 +0900164link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.changeScreen[
David Pursehouse67c07102013-09-24 09:55:23 +0900165configure which change screen is shown by default].
166+
167Users can choose which one to use in their personal preferences, either using
168the site default or explicitly choosing the old one or new one.
169
David Pursehoused0c8e372013-10-10 10:14:18 +0900170* link:https://code.google.com/p/gerrit/issues/detail?id=141[Issue 141]:
171In the new change screen, comments can be added on a range of lines.
172
David Pursehouse58b58de2013-05-20 19:11:58 +0900173* New button to cherry-pick the change to another branch.
174
175* When issuing a rebase via the Web UI, the committer is now the logged in
176 user, rather than "Gerrit Code Review".
177+
178If the user has more than one email address, the preferred email address will
179be used.
180
David Pursehouse87c69a02013-07-16 14:40:24 +0900181* Default user's full name to git committer name if user has not configured a
182full name in their profile.
183
184* Include comment author attributes in comment panels.
185+
186Comment author's email address and name are included as attributes in comment
187panels. This makes it easier to filter out CI-based comments using user
188scripts.
189
David Pursehoused7b0cb82013-08-14 11:49:22 +0900190* Copy reviewed flag to new patch sets for identical files.
191+
192If a user has already seen and reviewed a file, the 'reviewed' flag is forwarded
193on to the next patch set when the content of the file in the next patch set is
194identical to the reviewed file.
195
David Pursehouse67c07102013-09-24 09:55:23 +0900196* "Uploaded Patch Set 1" change message is added on changes when they
197are uploaded.
198
David Pursehouse58b58de2013-05-20 19:11:58 +0900199
200REST API
201~~~~~~~~
202
David Pursehouse0c62df92013-10-17 14:11:48 +0900203* Several new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900204REST API endpoints] are added.
205
David Pursehouse87c69a02013-07-16 14:40:24 +0900206* REST views can determine how long their response should be cached.
207
David Pursehouse73907be2013-08-08 15:18:55 +0900208* REST views can handle 'HTTP 422 Unprocessable Entity' responses.
209
David Pursehouse61927b72013-06-27 16:06:51 +0900210Access Rights
211^^^^^^^^^^^^^
212
213
David Pursehouse0c62df92013-10-17 14:11:48 +0900214* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-access.html#list-access[
David Pursehouse61927b72013-06-27 16:06:51 +0900215List access rights for project(s)]
216
David Pursehouse58b58de2013-05-20 19:11:58 +0900217Accounts
218^^^^^^^^
219
220
David Pursehouse0c62df92013-10-17 14:11:48 +0900221* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account[
David Pursehouse58b58de2013-05-20 19:11:58 +0900222Create account]
223
David Pursehouse0c62df92013-10-17 14:11:48 +0900224* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900225Get account full name]
226
David Pursehouse0c62df92013-10-17 14:11:48 +0900227* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900228Set account full name]
229
David Pursehouse0c62df92013-10-17 14:11:48 +0900230* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900231Delete account full name]
232
David Pursehouse0c62df92013-10-17 14:11:48 +0900233* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-account-emails[
David Pursehouse58b58de2013-05-20 19:11:58 +0900234List account email addresses]
235
David Pursehouse0c62df92013-10-17 14:11:48 +0900236* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900237Get account email address]
238
David Pursehouse0c62df92013-10-17 14:11:48 +0900239* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-preferred-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900240Set account preferred email address]
241
David Pursehouse0c62df92013-10-17 14:11:48 +0900242* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900243Create account email]
244
David Pursehouse0c62df92013-10-17 14:11:48 +0900245* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900246Delete account email]
247
David Pursehouse0c62df92013-10-17 14:11:48 +0900248* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900249Get account state]
250
David Pursehouse0c62df92013-10-17 14:11:48 +0900251* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900252Set account state to active]
253
David Pursehouse0c62df92013-10-17 14:11:48 +0900254* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900255Set account state to inactive]
256
David Pursehouse0c62df92013-10-17 14:11:48 +0900257* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900258Get account HTTP password]
259
David Pursehouse0c62df92013-10-17 14:11:48 +0900260* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900261Set or generate account HTTP password]
262
David Pursehouse0c62df92013-10-17 14:11:48 +0900263* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900264Delete account HTTP password]
265
David Pursehouse0c62df92013-10-17 14:11:48 +0900266* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-ssh-keys[
David Pursehouse7f47d262013-06-04 10:04:59 +0900267List account SSH keys]
268
David Pursehouse0c62df92013-10-17 14:11:48 +0900269* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900270Get account SSH key]
271
David Pursehouse0c62df92013-10-17 14:11:48 +0900272* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#add-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900273Add account SSH key]
274
David Pursehouse0c62df92013-10-17 14:11:48 +0900275* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900276Delete account SSH key]
277
David Pursehouse0c62df92013-10-17 14:11:48 +0900278* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-username[
David Pursehouse55817ab2013-06-07 15:54:29 +0900279Get account username]
280
David Pursehouse58b58de2013-05-20 19:11:58 +0900281Changes
282^^^^^^^
283
284
David Pursehouse0c62df92013-10-17 14:11:48 +0900285* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#rebase-change[
David Pursehouse58b58de2013-05-20 19:11:58 +0900286Rebase change]
287
David Pursehouse0c62df92013-10-17 14:11:48 +0900288* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#cherry-pick[
David Pursehouse58b58de2013-05-20 19:11:58 +0900289Cherry-pick revision]
290
David Pursehouse0c62df92013-10-17 14:11:48 +0900291* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-content[
David Pursehouse58b58de2013-05-20 19:11:58 +0900292Get content of a file in a revision]
293
David Pursehouse0c62df92013-10-17 14:11:48 +0900294* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-patch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900295Get revision as a formatted patch]
296
David Pursehouse0c62df92013-10-17 14:11:48 +0900297* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-diff[
David Pursehouse55817ab2013-06-07 15:54:29 +0900298Get diff of a file in a revision]
David Pursehouse58b58de2013-05-20 19:11:58 +0900299
David Pursehouse0c62df92013-10-17 14:11:48 +0900300* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-commit[
David Pursehouse87c69a02013-07-16 14:40:24 +0900301Get parsed commit of a revision]
302
David Pursehouse0c62df92013-10-17 14:11:48 +0900303* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#publish-draft-change[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900304Publish draft change]
305
David Pursehouse0c62df92013-10-17 14:11:48 +0900306* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#delete-draft-change[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900307Delete draft change]
308
David Pursehouse0c62df92013-10-17 14:11:48 +0900309* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#suggest-reviewers[
David Pursehouse67c07102013-09-24 09:55:23 +0900310Suggest reviewers]
311
David Pursehouse0c62df92013-10-17 14:11:48 +0900312* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-included-in[
David Pursehoused0c8e372013-10-10 10:14:18 +0900313Get included in]
314
David Pursehouse58b58de2013-05-20 19:11:58 +0900315
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200316Config
317^^^^^^
318
David Pursehouse0c62df92013-10-17 14:11:48 +0900319* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-capabilities[
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200320Get capabilities]
321
David Pursehouse0c62df92013-10-17 14:11:48 +0900322* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-version[
David Pursehouse4143f952013-07-05 13:57:53 +0900323Get version] (of the Gerrit server)
324
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200325
David Pursehouse58b58de2013-05-20 19:11:58 +0900326Projects
327^^^^^^^^
328
329
David Pursehouse0c62df92013-10-17 14:11:48 +0900330* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-branches[
David Pursehouse58b58de2013-05-20 19:11:58 +0900331List branches]
332
David Pursehouse0c62df92013-10-17 14:11:48 +0900333* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-branch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900334Get branch]
335
David Pursehouse0c62df92013-10-17 14:11:48 +0900336* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#create-branch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900337Create branch]
338
David Pursehouse0c62df92013-10-17 14:11:48 +0900339* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#delete-branch[
David Pursehouse55817ab2013-06-07 15:54:29 +0900340Delete branch]
341
David Pursehouse0c62df92013-10-17 14:11:48 +0900342* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-child-projects[
David Pursehouse58b58de2013-05-20 19:11:58 +0900343List child projects]
344
David Pursehouse0c62df92013-10-17 14:11:48 +0900345* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-child-project[
David Pursehouse58b58de2013-05-20 19:11:58 +0900346Get child project]
347
David Pursehouse0c62df92013-10-17 14:11:48 +0900348* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#set-config[
David Pursehoused5c50f12013-08-21 11:36:09 +0900349Set configuration]
350
David Pursehouse58b58de2013-05-20 19:11:58 +0900351
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200352Capabilities
353~~~~~~~~~~~~
354
355
356New global capabilities are added.
357
David Pursehouse0c62df92013-10-17 14:11:48 +0900358* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/access_control.html#capability_generateHttpPassword[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900359Generate Http Password] allows non-administrator users to generate HTTP
David Pursehouseaa9f8902013-06-23 21:08:12 +0900360passwords for users other than themselves.
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200361+
362This capability would typically be assigned to a non-interactive group
363to be able to generate HTTP passwords for users from a tool or web service
364that uses the Gerrit REST API.
365
David Pursehouse0c62df92013-10-17 14:11:48 +0900366* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/access_control.html#capability_runAs[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900367Run As] allows users to impersonate other users by setting the `X-Gerrit-RunAs`
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200368HTTP header on REST API calls.
369+
370Site administrators do not inherit this capability; it must be granted
371explicitly.
372
373
David Pursehouse87c69a02013-07-16 14:40:24 +0900374Emails
375~~~~~~
376
377* The `RebasedPatchSet` template is removed. Email notifications for rebased
378changes are now sent with the `ReplacePatchSet` template.
379
David Pursehoused5c50f12013-08-21 11:36:09 +0900380* Comment notification emails now include context of comments that are replied
381to, and links to the file(s) in which comments are made.
382
David Pursehouse87c69a02013-07-16 14:40:24 +0900383
David Pursehouse58b58de2013-05-20 19:11:58 +0900384Plugins
385~~~~~~~
386
387
David Pursehouse2e3383f2013-07-08 10:50:26 +0900388Global
389^^^^^^
390
David Pursehouse58b58de2013-05-20 19:11:58 +0900391
David Pursehouse73907be2013-08-08 15:18:55 +0900392* Plugins may now contribute buttons to various parts of the UI using the
David Pursehouse0c62df92013-10-17 14:11:48 +0900393link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900394UI extension] and
David Pursehouse0c62df92013-10-17 14:11:48 +0900395link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/js-api.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900396JavaScript API].
David Pursehouse58b58de2013-05-20 19:11:58 +0900397
David Pursehouse87c69a02013-07-16 14:40:24 +0900398* Plugins may now provide an 'About' section on their documentation index page.
399
David Pursehouse3a2cc702013-08-15 11:06:46 +0900400* Plugins may now provide separate sections for REST API and servlet
401documentation on their index page.
402
David Pursehouse73907be2013-08-08 15:18:55 +0900403* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900404link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-validation.html#pre-merge-validation[
David Pursehouse73907be2013-08-08 15:18:55 +0900405pre-merge validation steps].
406
David Pursehoused7b0cb82013-08-14 11:49:22 +0900407* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900408link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#capabilities[
David Pursehoused7b0cb82013-08-14 11:49:22 +0900409Global capabilities].
410
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900411* Plugins may now
David Pursehouse0c62df92013-10-17 14:11:48 +0900412link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#plugin_name[
David Pursehoused0c8e372013-10-10 10:14:18 +0900413define their own name] and get the name injected at runtime.
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900414
David Pursehoused7b0cb82013-08-14 11:49:22 +0900415* The "hello world" plugin is replaced with the "cookbook plugin" which has more
416examples of the plugin API's usage.
417
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900418* Plugins may now trigger and listen to a "project deleted"
David Pursehouse0c62df92013-10-17 14:11:48 +0900419link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#events[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900420event].
421
422* link:https://code.google.com/p/gerrit/issues/detail?id=2101[Issue 2101]:
423Plugins implementing LifecycleListener can use auto registration.
424
425* Plugins may bind REST endpoints with empty view names.
426
David Pursehoused0c8e372013-10-10 10:14:18 +0900427* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900428link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#top-menu-extensions[
David Pursehoused0c8e372013-10-10 10:14:18 +0900429entries in Gerrit's top menu].
430
431* Plugins may now
David Pursehouse0c62df92013-10-17 14:11:48 +0900432link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#stream-events[
David Pursehoused0c8e372013-10-10 10:14:18 +0900433send events to the events stream].
434
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900435* Plugins may now bind multiple SSH commands to the same implementation class.
436
437* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900438link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#download-commands[
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900439download schemes and download commands].
440+
441Commonly used download schemes and commands are moved out of core
442Gerrit and are now implemented by a new core plugin, `download-commands`.
443
444
David Pursehouse87c69a02013-07-16 14:40:24 +0900445
David Pursehouse2e3383f2013-07-08 10:50:26 +0900446Commit Message Length Checker
447^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
448
449
450* Commits whose subject or body length exceeds the limit can be rejected.
451
452Replication
453^^^^^^^^^^^
454
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900455* Automatically create missing repositories on the destination.
456+
457If during the replication of a ref the target repository is found to be missing,
458the repository is automatically created.
459+
460This is a change in behavior of the replication plugin. To go back to the old
461behavior, set the parameter `remote.NAME.createMissingRepositories` in the
462`replication.config` file to `false`.
463
464* Support for replication of project deletions.
465+
466The replication plugin can now be configured to listen to project deletion events
467and to replicate the project deletions. By default project deletions are *not*
468replicated.
469
David Pursehouse2e3383f2013-07-08 10:50:26 +0900470* The `{$name}` placeholder is optional when replicating a single project,
471allowing a single project to be replicated under a different name.
472
David Pursehoused7b0cb82013-08-14 11:49:22 +0900473* Project names can be matched with wildcard or regex patterns in `replication.config`.
David Pursehouse73907be2013-08-08 15:18:55 +0900474
475* The `replication start` command does not exit until replication is finished
476when the `--wait` option is used.
477
478* The `replication start` command displays a summary of the replication status.
David Pursehouse58b58de2013-05-20 19:11:58 +0900479
David Pursehoused7b0cb82013-08-14 11:49:22 +0900480* Retry counts are added to replication task names, so they can be seen in the
481output of the `show-queue` command.
482
483* The `remoteNameStyle` option can be set to `basenameOnly` to replicate projects
484using only the basename on the target server.
485
486* The `startReplication` global capability is now provided by the plugin.
487
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900488* Pushes to each destination URI are serialized.
489+
490Scheduling a retry to avoid collision with an in-flight push is differentiated
491from a retry due to a transport error. In the case of collision avoidance, the
492job is rescheduled according to the replication delay, rather than the retry
493delay.
494
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900495
David Pursehouse58b58de2013-05-20 19:11:58 +0900496ssh
497~~~
498
499
500* The `commit-msg` hook installation command is now
David Pursehouse2e8b5822013-10-17 15:54:24 +0900501link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.installCommitMsgHookCommand[
David Pursehouse58b58de2013-05-20 19:11:58 +0900502configurable].
503
David Pursehouse0c62df92013-10-17 14:11:48 +0900504* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-ls-members.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900505New `ls-members` command].
506
David Pursehouse0c62df92013-10-17 14:11:48 +0900507* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-set-members.html[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900508New `set-members` command].
David Pursehouse621c2122013-06-19 09:30:16 +0900509+
510New command to manipulate group membership. Members can be added or removed
511and groups can be included or excluded in one specific group or number of groups.
512
David Pursehouse73907be2013-08-08 15:18:55 +0900513* The full commit message is now included in the data sent by the
David Pursehouse0c62df92013-10-17 14:11:48 +0900514link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-stream-events.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900515`stream-events` command].
516
David Pursehouse0c62df92013-10-17 14:11:48 +0900517* The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-show-queue.html[
David Pursehoused7b0cb82013-08-14 11:49:22 +0900518`show-queue` command] now shows the time that a task was added to the queue.
519
David Pursehouse58b58de2013-05-20 19:11:58 +0900520
David Pursehouse7f47d262013-06-04 10:04:59 +0900521Daemon
522~~~~~~
523
524
525* Add `--init` option to Daemon to initialize site on daemon start.
526+
527The `--init` option will also upgrade an already existing site and is processed in
528non-interactive (batch) mode.
529
530
David Pursehouse58b58de2013-05-20 19:11:58 +0900531Bug Fixes
532---------
533
534
David Pursehouse73907be2013-08-08 15:18:55 +0900535General
536~~~~~~~
537
538
539* Use the parent change on the same branch for rebases.
540+
541Since there can be multiple changes with the same commit on different branches,
542use the parent change on the same branch during rebase.
543
David Pursehoused5c50f12013-08-21 11:36:09 +0900544* link:https://code.google.com/p/gerrit/issues/detail?id=600[Issue 600]:
545Fix change stuck in SUBMITTED state but actually merged.
546
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900547* link:https://code.google.com/p/gerrit/issues/detail?id=1699[Issue 1699]:
548Fix handling of projects with trailing ".git" suffix.
549
550* Limit retrying of submitted changes to 12 hours.
551
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900552* Don't allow project owners to delete branches if force push is blocked.
553
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900554
David Pursehouse87c69a02013-07-16 14:40:24 +0900555Configuration
556~~~~~~~~~~~~~
557
558
559* Do not persist default project state in `project.config`.
560
David Pursehouse73907be2013-08-08 15:18:55 +0900561* Honor the `gerrit.cannonicalWebUrl` setting when opening the browser after init.
David Pursehouse87c69a02013-07-16 14:40:24 +0900562
563* Fix 'query disabled' error when Query Limit is set.
564
David Pursehouse73907be2013-08-08 15:18:55 +0900565* Honor the `gerrit.createChangeId` setting from the git config in the
David Pursehouse0c62df92013-10-17 14:11:48 +0900566The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-hook-commit-msg.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900567`commit-msg` hook].
568
David Pursehoused7b0cb82013-08-14 11:49:22 +0900569* link:https://code.google.com/p/gerrit/issues/detail?id=2045[Issue 2045]:
570Define user scope when parsing server config.
571
David Pursehoused5c50f12013-08-21 11:36:09 +0900572* link:https://code.google.com/p/gerrit/issues/detail?id=1990[Issue 1990]:
573Support optional Certificate Revocation List (CRL) with `CLIENT_SSL_CERT_LDAP`.
574
David Pursehoused0c8e372013-10-10 10:14:18 +0900575* Do not override error and gc logging configuration provided by the
576`-Dlog4j.configuration` parameter.
577
David Pursehouse58b58de2013-05-20 19:11:58 +0900578Web UI
579~~~~~~
580
581
David Pursehouse61927b72013-06-27 16:06:51 +0900582Global
583^^^^^^
584
585
586* link:https://code.google.com/p/gerrit/issues/detail?id=1574[Issue 1574]:
587Correctly highlight matches of text in escaped HTML entities in suggestion results.
588
David Pursehouse2e3383f2013-07-08 10:50:26 +0900589* link:https://code.google.com/p/gerrit/issues/detail?id=1996[Issue 1996]:
590The "Keyboard Shortcuts" help popup can be closed by pressing the Escape key.
591
David Pursehouse73907be2013-08-08 15:18:55 +0900592* link:https://code.google.com/p/gerrit/issues/detail?id=2013[Issue 2013]:
593Correctly populate the list of watched changes when watching more than one project.
David Pursehouse61927b72013-06-27 16:06:51 +0900594
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900595* Display "Working..." when header is hidden.
596
David Pursehouse61927b72013-06-27 16:06:51 +0900597Change Screens
598^^^^^^^^^^^^^^
599
600
David Pursehouse58b58de2013-05-20 19:11:58 +0900601* Default review comment visibility is changed to expand all recent.
602+
603By default all comments within the last week are expanded, rather than
604only the most recent.
605
David Pursehouse7f47d262013-06-04 10:04:59 +0900606* link:https://code.google.com/p/gerrit/issues/detail?id=1814[Issue 1814]:
607Sort labels alphabetically by name in the approval table.
608
David Pursehoused0c8e372013-10-10 10:14:18 +0900609* Don't add "This patchset was cherry picked to ..." for the same change.
610+
611If a patchset is cherry-picked to the same destination branch and
612ends up on the same change, it does not make sense to add the "This
613patchset was cherry picked to change ..." message.
614+
615In this case, it makes more sense for the message to say "Uploaded
616patch set N" instead.
617
David Pursehouse61927b72013-06-27 16:06:51 +0900618Project Screens
619^^^^^^^^^^^^^^^
620
621
622* Only enable the delete branch button when branches are selected.
623
624* Disable the delete branch button while branch deletion requests are
625still being processed.
626
627User Profile Screens
628^^^^^^^^^^^^^^^^^^^^
629
630
631* The preferred email address field is shown as empty if the user has no
632preferred email address.
633
David Pursehouse58b58de2013-05-20 19:11:58 +0900634
635REST API
636~~~~~~~~
637
638
David Pursehouse7f47d262013-06-04 10:04:59 +0900639* Support raw input also in POST requests.
640
David Pursehouse58b58de2013-05-20 19:11:58 +0900641* Show granted date for labels/all when using `/changes/`.
642
643* Return all revisions when `o=ALL_REVISIONS` is set on `/changes/`.
644
645ssh
646~~~
647
648
David Pursehouse73907be2013-08-08 15:18:55 +0900649* The `--force-message` option is removed from the
David Pursehouse0c62df92013-10-17 14:11:48 +0900650The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900651`review` command].
David Pursehouse58b58de2013-05-20 19:11:58 +0900652
653* link:https://code.google.com/p/gerrit/issues/detail?id=1908[Issue 1908]:
654Provide more informative error messages when rejecting updates.
655
David Pursehouse4143f952013-07-05 13:57:53 +0900656* Remove the limit in the query of patch sets by revision.
657
David Pursehouse73907be2013-08-08 15:18:55 +0900658* Add `isDraft` in the `patchSet` attribute of `stream-events` data.
David Pursehouse2e3383f2013-07-08 10:50:26 +0900659+
660This allows consumers of the event stream to determine whether or not
661the event is related to a draft patch set.
662
David Pursehouse73907be2013-08-08 15:18:55 +0900663* Normalize the case of review labels submitted via the
David Pursehouse0c62df92013-10-17 14:11:48 +0900664The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900665`review` command].
666
David Pursehoused7b0cb82013-08-14 11:49:22 +0900667* The `@CommandMetaData(descr)` annotation is deprecated in favor of `@CommandMetaData(description)`.
668
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900669* Improve the error message when rejecting upload for review to a read-only project.
670
David Pursehouse2e3383f2013-07-08 10:50:26 +0900671
David Pursehouse67c07102013-09-24 09:55:23 +0900672Plugins
673~~~~~~~
674
David Pursehoused0c8e372013-10-10 10:14:18 +0900675Global
676^^^^^^
677
David Pursehouse67c07102013-09-24 09:55:23 +0900678* Better error message when a Javascript plugin cannot be loaded.
679
David Pursehoused0c8e372013-10-10 10:14:18 +0900680* Plugin documentation links are opened in a new tab.
681
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900682* The GitReferenceUpdatedListener.Event API is simplified.
683+
684The Event exposed the getUpdates method which implied that one Event
685could contain updates of more than one reference. However, this feature
686was never used.
687+
688The API is simplified in the sense that one Event now corresponds to
689one ref update only.
690
David Pursehoused0c8e372013-10-10 10:14:18 +0900691
692Review Notes
693^^^^^^^^^^^^
694
695* Do not try to create review notes for ref deletion events.
696
697* Fix committing the notes from the export command.
698
699* link:https://code.google.com/p/gerrit/issues/detail?id=2087[Issue 2087]:
700Fix note creation when the same commit exists in another Git repository.
701
702* Improve the export command performance.
703
704* Create review note also when newObjectId already present in another branch.
705
David Pursehouse87c69a02013-07-16 14:40:24 +0900706Emails
707~~~~~~
708
709* Email notifications are sent for new changes created via actions in the
710Web UI such as cherry-picking or reverting a change.
711
712
David Pursehouse58b58de2013-05-20 19:11:58 +0900713Tools
714~~~~~
715
716
717* git-exproll.sh: return non-zero on errors
718
David Pursehouse58b58de2013-05-20 19:11:58 +0900719
720Documentation
721-------------
722
723
David Pursehouse0c62df92013-10-17 14:11:48 +0900724* The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/index.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900725documentation index page] is rewritten in a hierarchical structure.
726
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900727* Documentation of
David Pursehouse0c62df92013-10-17 14:11:48 +0900728link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-project-config.txt[
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900729project configuration] is added.
730
David Pursehouse61927b72013-06-27 16:06:51 +0900731* Various spelling mistakes are corrected in the documentation and previous
732release notes.
733
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200734
735Upgrades
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900736--------
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200737
David Ostrovsky70f660b2013-11-04 05:55:38 +0100738* Update JGit to 3.1.0.201310021548-r
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200739* Update gwtorm to 1.7
740* Update guice to 4.0-beta
741* Update guava to 15.0
742* Update H2 to 1.3.173
743* Update bouncycastle to 1.44
David Ostrovskyccd5ab32013-11-09 07:51:41 +0100744* Update Apache Mina to 2.0.7
745* Update Apache SSHD to 0.9.0.201311081
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200746* asciidoctor 0.1.4 is now required to build the documentation
747* jsr305 library was removed